#ifndef _ASYNC_CLIENT_H_
#define _ASYNC_CLIENT_H_

#include "tcp_client.h"
#include <iostream>
#include <string>
#include <boost/asio.hpp>

namespace async_client {

using namespace boost;
using namespace std;

class AsyncClient: public auroral::net::TcpClient
{
public:
	AsyncClient(boost::asio::io_service& io_service,
		const std::string& server, int16_t port);
	virtual ~AsyncClient();
protected:
	virtual void process_read();
};

struct PING_INFO
{
	AsyncClient* client;
	std::string message;
};

struct UNDEFINED_MSG_INFO
{
	AsyncClient* client;
	std::string message;
};

}; // namespace async_client 

#endif // _ASYNC_CLIENT_H_